﻿//*** Ekleyen: İbrahim OĞUZ (11.03.2011) ***

var mBackSpace = 8;
var mTab = 9;
var mEnter = 13;
var mDelete = 46;
var mSpace = 32;

var mShift = 16;
var mCtrl = 17;
var mEnd = 35;
var mHome = 36;
var mLeftArrow = 37;
var mUpArrow = 38;
var mRightArrow = 39;
var mDownArrow = 40;
var mPageUp = 33;
var mPageDown = 34;

var mF1 = 112;
var mF2 = 113;
var mF3 = 114;
var mF4 = 115;
var mF5 = 116;
var mF6 = 117;
var mF7 = 118;
var mF8 = 119;
var mF9 = 120;
var mF10 = 121;
var mF11 = 122;
var mF12 = 123;

var mPlus = 107;
var mMinus = 109;
var mStar = 106;
var mSlash = 111;
var mNumLock = 144;
var mScrollLock = 145;
var mAltGr = 17;
var mAlt = 18;
var mWinMenu = 93;

//_______________________________________________________________

//Sadece rakam girilmesini sağlar
//Örnek: onkeypress="return isNumberKey(event)"
function isNumberKey(e) {
    var kyCod = (e.which) ? e.which : e.keyCode;
    if (e.shiftKey) return false;
    if (kyCod == mEnter) return false;
    if (isOtherValidKey(kyCod)) return true;
    if (kyCod > 31 && (kyCod < 48 || kyCod > 57))
        return false;

    return true;
}

//Sadece metin girilmesini sağlar
//Örnek: onkeypress="return isTextKey(event)"
function isTextKey(e) {
    var kyCod = (e.which) ? e.which : e.keyCode;
    if (isOtherValidKey(kyCod)) return true;
    if ((kyCod > 64 && kyCod < 91) || (kyCod > 96 && kyCod < 123) || (kyCod > 127) || (kyCod == 32))
        return true;

    return false;
}

function isOtherValidKey(kyCod) {
    if (kyCod == mHome || kyCod == mBackSpace || kyCod == mTab || kyCod == mLeftArrow ||
        kyCod == mUpArrow || kyCod == mRightArrow || kyCod == mDownArrow || kyCod == mCtrl || kyCod == mEnd || kyCod == mShift) return true;
}

//TextBox'a mouse ile tıklandığında TextBox'ın boşaltılmasını sağlar. NOT: text "-" işareti ile başlıyor ise çalışır
//Örnek: onFocus="CleanTxtBoxOnGotFocus(this);"
function CleanTxtBoxOnGotFocus(kontrol) {
    var txt = kontrol.value;
    if (txt == "" || String(txt).substring(0, 1) == "-") {
        kontrol.style.color = '#000000';
        kontrol.value = "";
    }
}

//TextBox'dan çıkıldığında istenen bir metinin TextBox içine yazılmasını sağlar
//Örnek: onBlur="FillTxtBoxOnLostFocus(this,"Lütfen bir değer girin");"
function FillTxtBoxOnLostFocus(kontrol, tekst) {
    var txt = kontrol.value;
    if (txt == "") {
        kontrol.style.color = '#000000';
        kontrol.value = tekst;
    }
}

//Mouse ile TextBox üzerine gelindiğinde farklı bir arka plan rengi, mouse TextBox'dan uzaklaştığında farklı bir arka plan rengi verilir
//Örnek: onmouseout="RenkDegistir(this, '#ffffff');" onmouseover="RenkDegistir(this, '#F7F6F3');"
function RenkDegistir(kontrol, renk) {
    kontrol.style.backgroundColor = renk;
}

//GridView satırları arasında dolaşırken mouse ile üzerine gelinen satırın renklenmesini sağlar
//Örnek: Codebehind'a alttaki kod eklenir ve GridViewKisiArama yerine ilgili griview'in adı yazılır
/*
protected void GridViewKisiArama_RowDataBound(object sender, GridViewRowEventArgs e)
{
int i = 0;
string indx;
foreach (GridViewRow grow in GridViewKisiArama.Rows)
{
i += 1;
indx = i.ToString();
grow.Attributes["onmouseover"] = "Highlight(this, true," + indx + ");";
grow.Attributes["onmouseout"] = "Highlight(this, false," + indx + ");";
HttpResponse myHttpResponse = Response;
HtmlTextWriter myHtmlTextWriter = new HtmlTextWriter(myHttpResponse.Output);
grow.Attributes.AddAttributes(myHtmlTextWriter);
}
}*/
function Highlight(tableRow, active, indx) {
    if (active) {
        tableRow.style.backgroundColor = '#cfc';
        tableRow.style.cursor = "hand";
    }
    else {
        var i;
        i = parseInt(indx);
        if (i % 2 == 0) {
            tableRow.style.backgroundColor = '#ebf4fa'; //F7F6F3
        }
        else {
            tableRow.style.backgroundColor = '#ffffff';
        }
    }
}

function HighlightWithCustomColor(tableRow, active, indx, activeColor, color) {
    if (active) {
        tableRow.style.backgroundColor = activeColor;
        tableRow.style.cursor = "hand";
    }
    else {
        var i;
        i = parseInt(indx);
        if (i % 2 == 0) {
            tableRow.style.backgroundColor = color; //F7F6F3
        }
        else {
            tableRow.style.backgroundColor = color;
        }
    }
}

function UzunluguSinirla(obj, maxUzunluk) {
    if (obj.value.length > maxUzunluk)
        obj.value = obj.value.substring(0, maxUzunluk)
}

function MinimumUzunlukBelirle(obj, minUzunluk) {
    if (obj.value.length < minUzunluk) {
        alert('Bu alana en az ' + minUzunluk + ' karakter girilmelidir !')
        obj.value = '';
    }
}

function MinimumUzunlukKontrolu(obj, minUzunluk, alanAdi, zorunlu) {
    if (obj.value.length < minUzunluk) {
        if (!zorunlu && obj.value.length == 0) return true;
        var alertPrefix = "Bu alana";
        if (alanAdi != "") alertPrefix = alanAdi + " alanına";
        alert(alertPrefix + ' en az ' + minUzunluk + ' karakter girilmelidir !')
        obj.value = '';
        return false;
    }
    return true;
}

//Obje olarak gönderilen herhangi bir TextBox içinde seçili durumda bir yazı varsa, bu seçili durumdaki yazıyı geri döndürür. Örneğin, bir TextBox içinde "İbrahim" yazıyor ve "an" kısmı seçili durumda ise geriye "an" döner
function SeciliTekstiAl(gonderen) {
    var selectedText;

    // IE version
    if (document.selection != undefined) {
        gonderen.focus();
        var sel = document.selection.createRange();
        selectedText = sel.text;
    }
    // Mozilla version
    else if (gonderen.selectionStart != undefined) {
        var startPos = gonderen.selectionStart;
        var endPos = gonderen.selectionEnd;
        selectedText = gonderen.value.substring(startPos, endPos)
    }
    // Opera, Firefox ve Safari
    else if (gonderen.selectionStart != undefined) {
        selectedText = gonderen.getSelection();
    }
    return selectedText;
}

function ChangeControlText(sender, text) {

    if (sender) {
        if (sender.childNodes[0]) {
            sender.childNodes[0].nodeValue = text;
        }
        else if (sender.value) {
            sender.value = text;
        }
        else //if (sender.innerHTML)
        {
            sender.innerHTML = text;
        }
    }
}

function DisableControl(ControlID) {
    if (document.getElementById) {
        document.getElementById(ControlID).disabled = true;
    }
    else if (document.all) {
        document.all[ControlID].disabled = true;
    }
    else if (document.layers) {
        document.layers[ControlID].disabled = true;
    }
}

//Browser tipini alma
function BrowserTipi() {
    if (navigator.appName.indexOf('Microsoft') != -1)
        return 'IE'
    else if (navigator.appName.indexOf('Netscape') != -1)
        return 'Netscape'
    else if (navigator.appName.indexOf('Opera') != -1)
        return 'Opera'
    else return 'IE';
}

function IEVersion() {
    var version = 0;
    if (navigator.appVersion.indexOf("MSIE") != -1)
        version = parseFloat(navigator.appVersion.split("MSIE")[1]);

    return version;
}

function getObj(sender) {
    if (BrowserTipi() == 'IE') {
        return document.getElementById(sender);
    }
    else {
        return document.getElementsByName(sender)[0];
    }
}

function HepsiBuyuk(sender) {
    sender.value = sender.value.replace(/i/g, 'İ');
    sender.value = sender.value.toUpperCase();
}

function HepsiKucuk(sender) {
    sender.value = sender.value.replace(/I/g, 'ı');
    sender.value = sender.value.toLowerCase();
}

//Girilen her bir kelimenin ilk harfini büyük harfe diğerlerini de küçük harfe çeviren fonksiyon.
function ProperCase(sender) {
    //sender.value = sender.value.toLowerCase().replace(/\b\w/g, function(match) { return match.toUpperCase(); }); //Türkçe karakterlerde sorun çıkartıyor. Bu nedenle alttaki kod yazıldı
    //sender.value = sender.value.toLowerCase().replace(/^(.)|\s(.)/g, function($1) { return $1.toUpperCase(); });

    var yazi = sender.value;
    var parca = new Array();
    parca = yazi.split(' ');

    var s = '';
    var sonuc = '';
    var chrYeri = 0;
    for (i = 0; i <= parca.length - 1; i++) {
        s = parca[i];
        k = s.substring(0, 1);

        if (k == 'i') k = 'İ';
        else k = k.toUpperCase();

        s = k + s.substring(1, s.length).toLowerCase()
        sonuc += s + ' ';
    }
    sonuc = sonuc.substring(0, sonuc.length - 1);
    sonuc = sonuc.replace('Ve', 've');
    sender.value = sonuc;
}

//-------------------------------------------------------------------------

var TabNumber = 0;
var TabCount;

function ChangeAktivTab(KeyNumber, TabControlObj, NumberOfTabCount) {
    TabCount = NumberOfTabCount;
    if (KeyNumber == mRightArrow) {
        SetActiveTab(TabNumber + 1, TabControlObj);
    }
    else if (KeyNumber == mLeftArrow) {
        SetActiveTab(TabNumber - 1, TabControlObj);
    }

    return TabNumber;
}

function SetActiveTab(tabNumber, TabControlObj) {
    if (tabNumber <= 0) tabNumber = 0;
    if (tabNumber > TabCount) tabNumber = TabCount;
    TabNumber = tabNumber;

    TabControlObj.set_activeTab(TabControlObj.get_tabs()[tabNumber]);
}

var CurPos = 0;
function GetInstantCursorPosition(sender) {

    if (document.selection) {    //FOR IE
        sender.focus();
        var Sel = document.selection.createRange();
        Sel.moveStart('character', -sender.value.length);
        CurPos = Sel.text.length;
    }
    else if (sender.selectionStart != '0')// For Firefox
        CurPos = sender.selectionStart;

    return CurPos;
}

function SetLastCursorPosition(sender) {

    if (sender.setSelectionRange) {//For Firefox
        sender.focus();
        sender.setSelectionRange(CurPos, CurPos);
    }
    else if (sender.createTextRange) {// FOR IE
        var range = sender.createTextRange();
        range.collapse(true);
        range.moveEnd('character', CurPos);
        range.moveStart('character', CurPos);
        range.select();
    }
}

function SetCursorPosition(sender, len) {
    if (sender.setSelectionRange) {//For Firefox
        sender.focus();
        sender.setSelectionRange(len, len);
    }
    else if (sender.createTextRange) {// FOR IE
        var range = sender.createTextRange();
        range.collapse(true);
        range.moveEnd('character', len);
        range.moveStart('character', len);
        range.select();
    }
}
//***

//***Trim fonksiyonları
//string prototip modifikasyonlu. örnek: myString.trim();
String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, "");
}
String.prototype.ltrim = function() {
    return this.replace(/^\s+/, "");
}
String.prototype.rtrim = function() {
    return this.replace(/\s+$/, "");
}

//Normal fonksiyon. Örnek: trim(myString);
function trim(stringToTrim) {
    return stringToTrim.replace(/^\s+|\s+$/g, "");
}
function ltrim(stringToTrim) {
    return stringToTrim.replace(/^\s+/, "");
}
function rtrim(stringToTrim) {
    return stringToTrim.replace(/\s+$/, "");
}

//User Control'lerdeki KeyDown eventlerini yakalamak ve ilgili methodları çağırmak için kullanılır. (KeyDown event karmaşasını ortadan kaldırmak için konuldu)
function CallUserControlsKeydownEventMethods(event) {
    try {
        var charCode = GetKeyCode();
        if (charCode != mDownArrow && charCode != mUpArrow && charCode != mEnter && charCode != mDelete && charCode != mSpace) return;

        try { KayitSecBelediye(charCode); } catch (exception) { } //Olmayan bir method çağrıldığında sorun olmaması için, method try-catch içinde çağrılmalı
        try { KayitSecBirim(charCode); } catch (exception) { }
        try { KayitSecCografiYer(charCode); } catch (exception) { }
        try { KayitSecEvrak(charCode); } catch (exception) { }
        try { KayitSecFirma(charCode); } catch (exception) { }
        try { KayitSecIlIlce(charCode); } catch (exception) { }
        try { KayitSecKisi(charCode); } catch (exception) { }
        try { KayitSecMuhtarlik(charCode); } catch (exception) { }
        try { KayitSecUlkeSehir(charCode); } catch (exception) { }
        try { KayitSecUnvan(charCode); } catch (exception) { }
        try { KayitSecKonuGrubu(charCode); } catch (exception) { }
        try { KayitSecEvrakFirma(charCode); } catch (exception) { }
        try { KayitSecDropDown(charCode); } catch (exception) { }
    }
    catch (exception) {
        //
    }
}

function F5Engelle(event) {
    var keynum = GetKeyCode(event);
    if (keynum == mF5) {
        event.returnValue = false;
        if (event.which ? event.which = 0 : event.keyCode = 0);
    }
}

function GetKeyCode(event) {
    if (BrowserTipi() == 'IE') return window.event.keyCode; else return event.which;
}